作者:从从幸福 | 来源:互联网 | 2023-06-06 16:50
篇首语:本文由编程笔记#小编为大家整理,主要介绍了中国移动物联网开放平台OneNET学习笔记——设备接入测试(MQTT协议)OneNET Studio篇相关的知识,希望对你有一定的参考价值。 一、创建
篇首语:本文由编程笔记#小编为大家整理,主要介绍了中国移动物联网开放平台OneNET学习笔记——设备接入测试(MQTT协议)OneNET Studio篇相关的知识,希望对你有一定的参考价值。
一、创建产品与设备
1.1 创建产品
进入Studio平台后,展开菜单栏中的「设备接入与管理」,点击「设备管理」,进入设备列表页面。
点击「添加设备」,选中单个设备(默认方式)输入设备详情,点击「确定」创建设备。
按照提示填写产品的基本信息,进行产品创建;请按照提示尽可能完整、全面地填写相应内容,这样更方便您后期对产品进行管理,接入协议选择 MQTT
协议。
1.2 创建设备
进入Studio平台后,展开菜单栏中的「设备接入与管理」,点击「设备管理」,进入设备列表页面。
点击「添加设备」,选中单个设备(默认方式)输入设备详情,点击「确定」创建设备。
编辑「设备名称」与 「设备描述」,点击「确定」,完成添加设备。
二、配置MQTT客户端
MQTT X 是一款开源 5.0 桌面测试客户端,它支持在 macOS,Linux,Windows 操作系统上运行。
MQTT X 支持创建多个同时在线的 MQTT 客户端,方便用户快速测试 MQTT/TCP、MQTT/TLS 、MQTT/WebSocket 的连接/发布/订阅功能及其他 MQTT 协议特性。
EMQ官网下载:https://www.emqx.com/zh/try?product=MQTTX
- 打开MQTT X客户端,进入客户端配置页面
- Client ID: 填写
设备名称
- 服务器地址: 填写
studio-mqtt.heclouds.com
- 用户名: 填写
产品ID
- 密码: 填写
token
,算法参见接入安全认证
Token由多个参数构成,如下表:
名称 | 类型 | 是否必须 | 参数说明 | 参数示例 |
---|
version | string | 是 | 参数组版本号,日期格式,目前仅支持"2018-10-31" | 2018-10-31 |
res | string | 是 | 访问资源resource格式为:products/产品id/devices/设备名字 | products/dafdfadfafdaf/devices/che1 |
et | int | 是 | 访问过期时间expirationTime,单位秒,unix时间当一次访问参数中的et时间小于当前时间时,平台会认为访问参数过期从而拒绝该访问 | 1537255523表示:北京时间 2018-09-18 15:25:23 |
method | string | 是 | 签名方法signatureMethod支持hmacmd5、hmacsha1、hmacsha256 | sha1(代表使用hmacsha1算法) |
sign | string | 是 | 签名结果字符串signature | rBYeJXTp2q4V3C2aj4DBzjaydcw%3D |
平台提供Token生成工具(点击下载)
三、设备连接
点击连接,此时,设备在页面处于在线状态。
四、属性上报
4.1 订阅属性上报结果通知topic
为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统 topic 获取属性上报结果消息,属性上报回复topic为:$sys/pid/device-name/thing/property/post/reply
4.2 发布属性上报topic
属性上报的topic为:$sys/pid/device-name/thing/property/post
上报数据成功后,订阅的属性上报会返回success
OneJSON请求数据格式:
"id": "123",
"version": "1.0",
"params":
"CurrentVoltage":
"value": 5.0,
"time": 1660720877111
,
"CurrentTemperature":
"value": 23.6,
"time": 1660720877111
请求参数说明:
参数 | 类型 | 说明 |
---|
id | String | 消息id号,用户自定义,String类型的数字,长度限制13位。 |
version | String | 物模型版本号,可选字段,不填默认为1.0 |
params | JsonObject | 请求参数,用户自定义,标准json格式。如以上示例中,设备上报了的两个属性Power和WF。具体属性信息,包含属性上报时间(time)和上报的属性值(value)。 |
time | Long | 属性值生成时间。该参数为可选字段,到毫秒级。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。 |
value | Object | 上报的属性值 |
我们进入产品管理-详情页面,选择两个属性的标识符,如当前电压 CurrentVoltage
和当前温度 CurrentTemperature
。
页面设备管理-设备详情,查看设备上报的属性数据。
五、属性下发
5.1 订阅设备属性设置topic
设备侧需要收到平台下发的数据,需要订阅:$sys/pid/device-name/thing/property/set
在页面运维监控-设备调试中-下行数据调试,可进行设置设备属性。
5.2 发布设备属性设置结果通知topic
topic: $sys/pid/device-name/thing/property/set_reply
"id": "2",
"code":200,
"msg":"success"
其中id为下行数据的id,需要匹配,code为200代表成功,msg可以自定义。
六、事件上报
6.1 订阅事件上报结果通知topic
为了确保事件上传消息确实被平台所接受处理,设备可以订阅系统 topic 获取事件上报结果消息,属性上报回复topic为:$sys/pid/device-name/thing/event/post/reply
。
上报数据成功后,订阅的事件上报会返回success。
6.2 发布事件上报topic
上报事件topic为:$sys/pid/device-name/thing/event/post
OneJSON请求数据格式:
"id": "123",
"version": "1.0",
"params":
"HumAlarm":
"value":
"Type": 1
,
"time": 1660720877111
请求参数说明:
参数 | 类型 | 说明 |
---|
id | String | 消息id号,用户自定义,String类型的数字,长度限制13位。 |
version | String | 物模型版本号,可选字段,不填默认为1.0 |
params | JsonObject | 上报事件的参数。 |
time | Long | 属性值生成时间。该参数为可选字段,到毫秒级。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。 |
value | Object | 具体的事件信息。 |
我们进入产品管理-详情页面,选择一个事件的标识符,如湿度报警 HumAlarm
。
页面设备管理-设备详情,查看设备上报的事件数据。
七、获取设备期望值
7.1 订阅获取设备期望值结果通知topic
设备侧需要收到平台下发的期望值,需要订阅:$sys/pid/device-name/thing/property/desired/get/reply
7.2 发布设备获取期望值topic
获取设备期望值的topic为:$sys/pid/device-name/thing/property/desired/get
OneJSON数据格式:
"id" : "123",
"version":"1.0",
"params" : [
"MaxTempSet"
]
请求参数说明:
参数 | 类型 | 说明 |
---|
id | String | 消息id号,用户自定义,String类型的数字,长度限制13位。 |
version | String | 物模型版本号,可选字段,不填默认为1.0 |
params | JsonObject | 获取属性期望的标识符列表。 |
页面设置期望值:
• 由 Leung 写于 2022 年 8 月 19 日